package com.niuwa.p2p.service.claimtransfer;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import com.niuwa.p2p.core.mvc.entity.PageBean;
import com.niuwa.p2p.entity.claimtransfer.PlanTransLog;
import com.niuwa.p2p.entity.claimtransfer.PlanTransfer;
import com.niuwa.p2p.entity.claimtransfer.TransferApply;
import com.niuwa.p2p.entity.productTemplate.ProductProtocol;
import com.niuwa.p2p.vo.business.InvestPlanProductVo;
import com.niuwa.p2p.vo.business.LoanClaimOriginVo;
import com.niuwa.p2p.vo.claimtransfer.PlanTransferVo;

public interface PlanTransferService {
	/**
	 * 获取渠道账号分页列表
	 * @param paramMap
	 * @return
	 */
	public PageBean<PlanTransferVo> searchPlanTransferPage(Map<String,Object> paramMap);
	/**
	 * 查询详情
	 * @param prodCode
	 * @return
	 */
	public InvestPlanProductVo viewPlanProDetail(String prodCode);
	
	/**
	 * 获取产品相关协议
	 * @param prodCode
	 * @return
	 */
	public List<ProductProtocol> getProductProtocol(String prodCode);
	/**
	 * 获取待匹配资金
	 * @return
	 */
	public BigDecimal getWaitMatchFund();
	
	/**
	 * 获取待匹配债权
	 * @return
	 */
	public BigDecimal getWaitClaimMatchFund();
	/**
	 * 投资计划债权转让详情页列表
	 * @param recordNo
	 * @return
	 */
	public PageBean<TransferApply> searchPlanTransferApplyList(String recordNo);
	
	/**
	 * 投资计划转让审核通过
	 * @param state
	 * @return
	 */
	public boolean saveAduitPass(String recordNo,Long userId);
	/**
	 * 投资计划转让审核拒绝
	 * @param state
	 * @return
	 */
	public boolean saveAduitReject(String recordNo,Long userId,String remark);
	/**
	 * 投资计划转让重新申请
	 * @param state
	 * @return
	 */
	public boolean saveAduitReApply(String recordNo,Long userId);
	
	/**
	 * 投资记录转让审核最新记录
	 * @param recordNo
	 * @return
	 */
	public PlanTransLog getNewestAudit(String recordNo);
	
	/**
	 * 获取项目详情
	 * @param projectNo
	 * @return
	 */
	public LoanClaimOriginVo getLoanClaimByProjectNo(String projectNo);
	
	public PlanTransfer getByRecordNo(String recordNo);
	
}
